/*
 * Clave.cpp
 *
 *  Created on: Jun 15, 2010
 *      Author: osky
 */

#include "Clave.h"

Clave::Clave(string clave) {

	this->clave = clave;
}

Clave::Clave(const Clave &claveCopia){

	this->clave = claveCopia.clave;
}

Clave::Clave(){

}

string Clave::getClave() {

	return this -> clave;
}

int Clave::getTamanio() {

	return (sizeof(int)+(this->clave.length()*sizeof(char)));
}

bool Clave::operator<(const Clave &clave2) {

	if (this->clave < clave2.clave) {
		return true;
	} else {
		return false;
	}
}

bool Clave::operator>(const Clave &clave2) {

	if (this->clave > clave2.clave) {
		return true;
	} else {
		return false;
	}
}

bool Clave::operator==(const Clave &clave2) {

	if (this->clave == clave2.clave) {
		return true;
	} else {
		return false;
	}
}

bool Clave::operator!=(const Clave &clave2){

	if (this->clave != clave2.clave) {

		return true;
	} else {

		return false;
	}

}


bool Clave::operator<=(const Clave &clave2) {

	if (this->clave <= clave2.clave) {

		return true;
	} else {
		return false;
	}
}

bool Clave::operator>=(const Clave &clave2) {

	if (this->clave >= clave2.clave) {

		return true;
	} else {

		return false;
	}
}

void Clave::serializar(c_bloque *destino) {

	unsigned int tamanioClave = this->clave.length();

	destino->add(tamanioClave);

	destino->add((void*)(this->clave.c_str()),tamanioClave);

}

void Clave::hidratar(c_bloque *destino) {

	int tamanioClave;

	destino->get(&tamanioClave);

	void *buffer_temporal;

	destino->get((void**)&buffer_temporal,tamanioClave);

	this->clave = string((char*)buffer_temporal,tamanioClave);

}

Clave* Clave::clonar() {

	Clave* clon = new Clave(this->clave);

	return clon;
}
